<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/topology.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/topology.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> * include/linux/topology.h</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> * Written by: Matthew Dobson, IBM Corporation</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> *</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> * Copyright (C) 2002, IBM Corp.</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> *</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> * All rights reserved.</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> *</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> * This program is free software; you can redistribute it and/or modify</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> * it under the terms of the GNU General Public License as published by</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> * the Free Software Foundation; either version 2 of the License, or</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> * (at your option) any later version.</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> *</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> * This program is distributed in the hope that it will be useful, but</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> * WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> * NON INFRINGEMENT.  See the GNU General Public License for more</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> * details.</span>
<a name="20" /><span class="True">      20:</span> <span class="k"> *</span>
<a name="21" /><span class="True">      21:</span> <span class="k"> * You should have received a copy of the GNU General Public License</span>
<a name="22" /><span class="True">      22:</span> <span class="k"> * along with this program; if not, write to the Free Software</span>
<a name="23" /><span class="True">      23:</span> <span class="k"> * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span>
<a name="24" /><span class="True">      24:</span> <span class="k"> *</span>
<a name="25" /><span class="True">      25:</span> <span class="k"> * Send feedback to &lt;colpatch@us.ibm.com&gt;</span>
<a name="26" /><span class="True">      26:</span> <span class="k"> */</span>
<a name="27" /><span class="Maybe">      27:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X0xJTlVYX1RPUE9MT0dZX0hfMA__"><span class="b">_LINUX_TOPOLOGY_H</span></a>
<a name="28" /><span class="Maybe">      28:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_X0xJTlVYX1RPUE9MT0dZX0hfMA__"><span class="b">_LINUX_TOPOLOGY_H</span></a>
<a name="29" /><span class="Maybe">      29:</span> 
<a name="30" /><span class="Maybe">      30:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">cpumask</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="31" /><span class="Maybe">      31:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">bitops</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="32" /><span class="Maybe">      32:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">mmzone</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="33" /><span class="Maybe">      33:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">smp</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="34" /><span class="Maybe">      34:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">percpu</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="35" /><span class="Maybe">      35:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="m">asm</span><span class="f">/</span><span class="b">topology</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="36" /><span class="Maybe">      36:</span> 
<a name="37" /><span class="Maybe">      37:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_bm9kZV9oYXNfb25saW5lX21lbV8w"><span class="b">node_has_online_mem</span></a>
<a name="38" /><span class="Maybe">      38:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_bm9kZV9oYXNfb25saW5lX21lbV8w"><span class="b">node_has_online_mem</span></a><span class="f">(</span><span class="b">nid</span><span class="f">)</span> <span class="f">(</span><span class="c">1</span><span class="f">)</span>
<a name="39" /><span class="Maybe">      39:</span> <span class="f">#</span><span class="n">endif</span>
<a name="40" /><span class="Maybe">      40:</span> 
<a name="41" /><span class="Maybe">      41:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_bnJfY3B1c19ub2RlXzA_"><span class="b">nr_cpus_node</span></a>
<a name="42" /><span class="Maybe">      42:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_bnJfY3B1c19ub2RlXzA_"><span class="b">nr_cpus_node</span></a><span class="f">(</span><span class="b">node</span><span class="f">)</span> <span class="b">cpumask_weight</span><span class="f">(</span><span class="b">cpumask_of_node</span><span class="f">(</span><span class="b">node</span><span class="f">)</span><span class="f">)</span>
<a name="43" /><span class="Maybe">      43:</span> <span class="f">#</span><span class="n">endif</span>
<a name="44" /><span class="Maybe">      44:</span> 
<a name="45" /><span class="Maybe">      45:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_Zm9yX2VhY2hfbm9kZV93aXRoX2NwdXNfMA__"><span class="b">for_each_node_with_cpus</span></a><span class="f">(</span><span class="b">node</span><span class="f">)</span>            \
<a name="46" /><span class="Maybe">      46:</span>     <a href="cpu.c_macros_ref.html#_Zm9yX2VhY2hfb25saW5lX25vZGVfMA__"><span class="b">for_each_online_node</span></a><span class="f">(</span><span class="b">node</span><span class="f">)</span>            \
<a name="47" /><span class="Maybe">      47:</span>         <span class="m">if</span> <span class="f">(</span><a href="cpu.c_macros_ref.html#_bnJfY3B1c19ub2RlXzA_"><span class="b">nr_cpus_node</span></a><span class="f">(</span><span class="b">node</span><span class="f">)</span><span class="f">)</span>
<a name="48" /><span class="Maybe">      48:</span> 
<a name="49" /><span class="Maybe">      49:</span> <span class="m">int</span> <span class="b">arch_update_cpu_topology</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">;</span>
<a name="50" /><span class="Maybe">      50:</span> 
<a name="51" /><span class="Maybe">      51:</span> <span class="k">/* Conform to ACPI 2.0 SLIT distance definitions */</span>
<a name="52" /><span class="Maybe">      52:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_TE9DQUxfRElTVEFOQ0VfMA__"><span class="b">LOCAL_DISTANCE</span></a>        <span class="c">10</span>
<a name="53" /><span class="Maybe">      53:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_UkVNT1RFX0RJU1RBTkNFXzA_"><span class="b">REMOTE_DISTANCE</span></a>        <span class="c">20</span>
<a name="54" /><span class="False">      54:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_bm9kZV9kaXN0YW5jZV8w"><span class="b">node_distance</span></a>
<a name="55" /><span class="False">      55:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_bm9kZV9kaXN0YW5jZV8w"><span class="b">node_distance</span></a><span class="f">(</span><span class="b">from</span><span class="f">,</span><span class="b">to</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="b">from</span><span class="f">)</span> <span class="f">==</span> <span class="f">(</span><span class="b">to</span><span class="f">)</span> <span class="f">?</span> <a href="cpu.c_macros_noref.html#_TE9DQUxfRElTVEFOQ0VfMA__"><span class="b">LOCAL_DISTANCE</span></a> <span class="f">:</span> <a href="cpu.c_macros_noref.html#_UkVNT1RFX0RJU1RBTkNFXzA_"><span class="b">REMOTE_DISTANCE</span></a><span class="f">)</span>
<a name="56" /><span class="Maybe">      56:</span> <span class="f">#</span><span class="n">endif</span>
<a name="57" /><span class="Maybe">      57:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_UkVDTEFJTV9ESVNUQU5DRV8w"><span class="b">RECLAIM_DISTANCE</span></a>
<a name="58" /><span class="Maybe">      58:</span> <span class="k">/*</span>
<a name="59" /><span class="Maybe">      59:</span> <span class="k"> * If the distance between nodes in a system is larger than RECLAIM_DISTANCE</span>
<a name="60" /><span class="Maybe">      60:</span> <span class="k"> * (in whatever arch specific measurement units returned by node_distance())</span>
<a name="61" /><span class="Maybe">      61:</span> <span class="k"> * then switch on zone reclaim on boot.</span>
<a name="62" /><span class="Maybe">      62:</span> <span class="k"> */</span>
<a name="63" /><span class="Maybe">      63:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UkVDTEFJTV9ESVNUQU5DRV8w"><span class="b">RECLAIM_DISTANCE</span></a> <span class="c">30</span>
<a name="64" /><span class="Maybe">      64:</span> <span class="f">#</span><span class="n">endif</span>
<a name="65" /><span class="Maybe">      65:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_UEVOQUxUWV9GT1JfTk9ERV9XSVRIX0NQVVNfMA__"><span class="b">PENALTY_FOR_NODE_WITH_CPUS</span></a>
<a name="66" /><span class="Maybe">      66:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_UEVOQUxUWV9GT1JfTk9ERV9XSVRIX0NQVVNfMA__"><span class="b">PENALTY_FOR_NODE_WITH_CPUS</span></a>    <span class="f">(</span><span class="c">1</span><span class="f">)</span>
<a name="67" /><span class="Maybe">      67:</span> <span class="f">#</span><span class="n">endif</span>
<a name="68" /><span class="Maybe">      68:</span> 
<a name="69" /><span class="Maybe">      69:</span> <span class="k">/*</span>
<a name="70" /><span class="Maybe">      70:</span> <span class="k"> * Below are the 3 major initializers used in building sched_domains:</span>
<a name="71" /><span class="Maybe">      71:</span> <span class="k"> * SD_SIBLING_INIT, for SMT domains</span>
<a name="72" /><span class="Maybe">      72:</span> <span class="k"> * SD_CPU_INIT, for SMP domains</span>
<a name="73" /><span class="Maybe">      73:</span> <span class="k"> *</span>
<a name="74" /><span class="Maybe">      74:</span> <span class="k"> * Any architecture that cares to do any tuning to these values should do so</span>
<a name="75" /><span class="Maybe">      75:</span> <span class="k"> * by defining their own arch-specific initializer in include/asm/topology.h.</span>
<a name="76" /><span class="Maybe">      76:</span> <span class="k"> * A definition there will automagically override these default initializers</span>
<a name="77" /><span class="Maybe">      77:</span> <span class="k"> * and allow arch-specific performance tuning of sched_domains.</span>
<a name="78" /><span class="Maybe">      78:</span> <span class="k"> * (Only non-zero and non-null fields need be specified.)</span>
<a name="79" /><span class="Maybe">      79:</span> <span class="k"> */</span>
<a name="80" /><span class="Maybe">      80:</span> 
<a name="81" /><span class="Maybe">      81:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NDSEVEX1NNVF8w"><span class="b">CONFIG_SCHED_SMT</span></a>
<a name="82" /><span class="Maybe">      82:</span> <span class="k">/* MCD - Do we really need this?  It is always on if CONFIG_SCHED_SMT is,</span>
<a name="83" /><span class="Maybe">      83:</span> <span class="k"> * so can&apos;t we drop this in favor of CONFIG_SCHED_SMT?</span>
<a name="84" /><span class="Maybe">      84:</span> <span class="k"> */</span>
<a name="85" /><span class="Maybe">      85:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_QVJDSF9IQVNfU0NIRURfV0FLRV9JRExFXzA_"><span class="b">ARCH_HAS_SCHED_WAKE_IDLE</span></a>
<a name="86" /><span class="Maybe">      86:</span> <span class="k">/* Common values for SMT siblings */</span>
<a name="87" /><span class="Maybe">      87:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_U0RfU0lCTElOR19JTklUXzA_"><span class="b">SD_SIBLING_INIT</span></a>
<a name="88" /><span class="Maybe">      88:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_U0RfU0lCTElOR19JTklUXzA_"><span class="b">SD_SIBLING_INIT</span></a> <span class="f">(</span><span class="m">struct</span> <span class="b">sched_domain</span><span class="f">)</span> <span class="f">{</span>                \
<a name="89" /><span class="Maybe">      89:</span>     <span class="f">.</span><span class="b">min_interval</span>        <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="90" /><span class="Maybe">      90:</span>     <span class="f">.</span><span class="b">max_interval</span>        <span class="f">=</span> <span class="c">2</span><span class="f">,</span>                    \
<a name="91" /><span class="Maybe">      91:</span>     <span class="f">.</span><span class="b">busy_factor</span>        <span class="f">=</span> <span class="c">64</span><span class="f">,</span>                    \
<a name="92" /><span class="Maybe">      92:</span>     <span class="f">.</span><span class="b">imbalance_pct</span>        <span class="f">=</span> <span class="c">110</span><span class="f">,</span>                    \
<a name="93" /><span class="Maybe">      93:</span>                                     \
<a name="94" /><span class="Maybe">      94:</span>     <span class="f">.</span><span class="b">flags</span>            <span class="f">=</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfTE9BRF9CQUxBTkNFXzA_"><span class="b">SD_LOAD_BALANCE</span></a>            \
<a name="95" /><span class="Maybe">      95:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9ORVdJRExFXzA_"><span class="b">SD_BALANCE_NEWIDLE</span></a>            \
<a name="96" /><span class="Maybe">      96:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9FWEVDXzA_"><span class="b">SD_BALANCE_EXEC</span></a>            \
<a name="97" /><span class="Maybe">      97:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9GT1JLXzA_"><span class="b">SD_BALANCE_FORK</span></a>            \
<a name="98" /><span class="Maybe">      98:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9XQUtFXzA_"><span class="b">SD_BALANCE_WAKE</span></a>            \
<a name="99" /><span class="Maybe">      99:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfV0FLRV9BRkZJTkVfMA__"><span class="b">SD_WAKE_AFFINE</span></a>            \
<a name="100" /><span class="Maybe">     100:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0hBUkVfQ1BVUE9XRVJfMA__"><span class="b">SD_SHARE_CPUPOWER</span></a>            \
<a name="101" /><span class="Maybe">     101:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0hBUkVfUEtHX1JFU09VUkNFU18w"><span class="b">SD_SHARE_PKG_RESOURCES</span></a>        \
<a name="102" /><span class="Maybe">     102:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0VSSUFMSVpFXzA_"><span class="b">SD_SERIALIZE</span></a>            \
<a name="103" /><span class="Maybe">     103:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfUFJFRkVSX1NJQkxJTkdfMA__"><span class="b">SD_PREFER_SIBLING</span></a>            \
<a name="104" /><span class="Maybe">     104:</span>                 <span class="f">|</span> <span class="b">arch_sd_sibling_asym_packing</span><span class="f">(</span><span class="f">)</span>    \
<a name="105" /><span class="Maybe">     105:</span>                 <span class="f">,</span>                    \
<a name="106" /><span class="Maybe">     106:</span>     <span class="f">.</span><span class="b">last_balance</span>        <span class="f">=</span> <span class="b">jiffies</span><span class="f">,</span>                \
<a name="107" /><span class="Maybe">     107:</span>     <span class="f">.</span><span class="b">balance_interval</span>    <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="108" /><span class="Maybe">     108:</span>     <span class="f">.</span><span class="b">smt_gain</span>        <span class="f">=</span> <span class="c">1178</span><span class="f">,</span>    <span class="k">/* 15% */</span>            \
<a name="109" /><span class="Maybe">     109:</span>     <span class="f">.</span><span class="b">max_newidle_lb_cost</span>    <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="110" /><span class="Maybe">     110:</span>     <span class="f">.</span><span class="b">next_decay_max_lb_cost</span>    <span class="f">=</span> <span class="b">jiffies</span><span class="f">,</span>                \
<a name="111" /><span class="Maybe">     111:</span> <span class="f">}</span>
<a name="112" /><span class="Maybe">     112:</span> <span class="f">#</span><span class="n">endif</span>
<a name="113" /><span class="Maybe">     113:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* CONFIG_SCHED_SMT */</span>
<a name="114" /><span class="Maybe">     114:</span> 
<a name="115" /><span class="Maybe">     115:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1NDSEVEX01DXzA_"><span class="b">CONFIG_SCHED_MC</span></a>
<a name="116" /><span class="Maybe">     116:</span> <span class="k">/* Common values for MC siblings. for now mostly derived from SD_CPU_INIT */</span>
<a name="117" /><span class="Maybe">     117:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_U0RfTUNfSU5JVF8w"><span class="b">SD_MC_INIT</span></a>
<a name="118" /><span class="Maybe">     118:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_U0RfTUNfSU5JVF8w"><span class="b">SD_MC_INIT</span></a> <span class="f">(</span><span class="m">struct</span> <span class="b">sched_domain</span><span class="f">)</span> <span class="f">{</span>                \
<a name="119" /><span class="Maybe">     119:</span>     <span class="f">.</span><span class="b">min_interval</span>        <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="120" /><span class="Maybe">     120:</span>     <span class="f">.</span><span class="b">max_interval</span>        <span class="f">=</span> <span class="c">4</span><span class="f">,</span>                    \
<a name="121" /><span class="Maybe">     121:</span>     <span class="f">.</span><span class="b">busy_factor</span>        <span class="f">=</span> <span class="c">64</span><span class="f">,</span>                    \
<a name="122" /><span class="Maybe">     122:</span>     <span class="f">.</span><span class="b">imbalance_pct</span>        <span class="f">=</span> <span class="c">125</span><span class="f">,</span>                    \
<a name="123" /><span class="Maybe">     123:</span>     <span class="f">.</span><span class="b">cache_nice_tries</span>    <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="124" /><span class="Maybe">     124:</span>     <span class="f">.</span><span class="b">busy_idx</span>        <span class="f">=</span> <span class="c">2</span><span class="f">,</span>                    \
<a name="125" /><span class="Maybe">     125:</span>     <span class="f">.</span><span class="b">wake_idx</span>        <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="126" /><span class="Maybe">     126:</span>     <span class="f">.</span><span class="b">forkexec_idx</span>        <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="127" /><span class="Maybe">     127:</span>                                     \
<a name="128" /><span class="Maybe">     128:</span>     <span class="f">.</span><span class="b">flags</span>            <span class="f">=</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfTE9BRF9CQUxBTkNFXzA_"><span class="b">SD_LOAD_BALANCE</span></a>            \
<a name="129" /><span class="Maybe">     129:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9ORVdJRExFXzA_"><span class="b">SD_BALANCE_NEWIDLE</span></a>            \
<a name="130" /><span class="Maybe">     130:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9FWEVDXzA_"><span class="b">SD_BALANCE_EXEC</span></a>            \
<a name="131" /><span class="Maybe">     131:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9GT1JLXzA_"><span class="b">SD_BALANCE_FORK</span></a>            \
<a name="132" /><span class="Maybe">     132:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9XQUtFXzA_"><span class="b">SD_BALANCE_WAKE</span></a>            \
<a name="133" /><span class="Maybe">     133:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfV0FLRV9BRkZJTkVfMA__"><span class="b">SD_WAKE_AFFINE</span></a>            \
<a name="134" /><span class="Maybe">     134:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0hBUkVfQ1BVUE9XRVJfMA__"><span class="b">SD_SHARE_CPUPOWER</span></a>            \
<a name="135" /><span class="Maybe">     135:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0hBUkVfUEtHX1JFU09VUkNFU18w"><span class="b">SD_SHARE_PKG_RESOURCES</span></a>        \
<a name="136" /><span class="Maybe">     136:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0VSSUFMSVpFXzA_"><span class="b">SD_SERIALIZE</span></a>            \
<a name="137" /><span class="Maybe">     137:</span>                 <span class="f">,</span>                    \
<a name="138" /><span class="Maybe">     138:</span>     <span class="f">.</span><span class="b">last_balance</span>        <span class="f">=</span> <span class="b">jiffies</span><span class="f">,</span>                \
<a name="139" /><span class="Maybe">     139:</span>     <span class="f">.</span><span class="b">balance_interval</span>    <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="140" /><span class="Maybe">     140:</span>     <span class="f">.</span><span class="b">max_newidle_lb_cost</span>    <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="141" /><span class="Maybe">     141:</span>     <span class="f">.</span><span class="b">next_decay_max_lb_cost</span>    <span class="f">=</span> <span class="b">jiffies</span><span class="f">,</span>                \
<a name="142" /><span class="Maybe">     142:</span> <span class="f">}</span>
<a name="143" /><span class="Maybe">     143:</span> <span class="f">#</span><span class="n">endif</span>
<a name="144" /><span class="Maybe">     144:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* CONFIG_SCHED_MC */</span>
<a name="145" /><span class="Maybe">     145:</span> 
<a name="146" /><span class="Maybe">     146:</span> <span class="k">/* Common values for CPUs */</span>
<a name="147" /><span class="Maybe">     147:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_U0RfQ1BVX0lOSVRfMA__"><span class="b">SD_CPU_INIT</span></a>
<a name="148" /><span class="Maybe">     148:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_U0RfQ1BVX0lOSVRfMA__"><span class="b">SD_CPU_INIT</span></a> <span class="f">(</span><span class="m">struct</span> <span class="b">sched_domain</span><span class="f">)</span> <span class="f">{</span>                \
<a name="149" /><span class="Maybe">     149:</span>     <span class="f">.</span><span class="b">min_interval</span>        <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="150" /><span class="Maybe">     150:</span>     <span class="f">.</span><span class="b">max_interval</span>        <span class="f">=</span> <span class="c">4</span><span class="f">,</span>                    \
<a name="151" /><span class="Maybe">     151:</span>     <span class="f">.</span><span class="b">busy_factor</span>        <span class="f">=</span> <span class="c">64</span><span class="f">,</span>                    \
<a name="152" /><span class="Maybe">     152:</span>     <span class="f">.</span><span class="b">imbalance_pct</span>        <span class="f">=</span> <span class="c">125</span><span class="f">,</span>                    \
<a name="153" /><span class="Maybe">     153:</span>     <span class="f">.</span><span class="b">cache_nice_tries</span>    <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="154" /><span class="Maybe">     154:</span>     <span class="f">.</span><span class="b">busy_idx</span>        <span class="f">=</span> <span class="c">2</span><span class="f">,</span>                    \
<a name="155" /><span class="Maybe">     155:</span>     <span class="f">.</span><span class="b">idle_idx</span>        <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="156" /><span class="Maybe">     156:</span>     <span class="f">.</span><span class="b">newidle_idx</span>        <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="157" /><span class="Maybe">     157:</span>     <span class="f">.</span><span class="b">wake_idx</span>        <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="158" /><span class="Maybe">     158:</span>     <span class="f">.</span><span class="b">forkexec_idx</span>        <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="159" /><span class="Maybe">     159:</span>                                     \
<a name="160" /><span class="Maybe">     160:</span>     <span class="f">.</span><span class="b">flags</span>            <span class="f">=</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfTE9BRF9CQUxBTkNFXzA_"><span class="b">SD_LOAD_BALANCE</span></a>            \
<a name="161" /><span class="Maybe">     161:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9ORVdJRExFXzA_"><span class="b">SD_BALANCE_NEWIDLE</span></a>            \
<a name="162" /><span class="Maybe">     162:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9FWEVDXzA_"><span class="b">SD_BALANCE_EXEC</span></a>            \
<a name="163" /><span class="Maybe">     163:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9GT1JLXzA_"><span class="b">SD_BALANCE_FORK</span></a>            \
<a name="164" /><span class="Maybe">     164:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfQkFMQU5DRV9XQUtFXzA_"><span class="b">SD_BALANCE_WAKE</span></a>            \
<a name="165" /><span class="Maybe">     165:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfV0FLRV9BRkZJTkVfMA__"><span class="b">SD_WAKE_AFFINE</span></a>            \
<a name="166" /><span class="Maybe">     166:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0hBUkVfQ1BVUE9XRVJfMA__"><span class="b">SD_SHARE_CPUPOWER</span></a>            \
<a name="167" /><span class="Maybe">     167:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0hBUkVfUEtHX1JFU09VUkNFU18w"><span class="b">SD_SHARE_PKG_RESOURCES</span></a>        \
<a name="168" /><span class="Maybe">     168:</span>                 <span class="f">|</span> <span class="c">0</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfU0VSSUFMSVpFXzA_"><span class="b">SD_SERIALIZE</span></a>            \
<a name="169" /><span class="Maybe">     169:</span>                 <span class="f">|</span> <span class="c">1</span><span class="f">*</span><a href="cpu.c_macros_noref.html#_U0RfUFJFRkVSX1NJQkxJTkdfMA__"><span class="b">SD_PREFER_SIBLING</span></a>            \
<a name="170" /><span class="Maybe">     170:</span>                 <span class="f">,</span>                    \
<a name="171" /><span class="Maybe">     171:</span>     <span class="f">.</span><span class="b">last_balance</span>        <span class="f">=</span> <span class="b">jiffies</span><span class="f">,</span>                \
<a name="172" /><span class="Maybe">     172:</span>     <span class="f">.</span><span class="b">balance_interval</span>    <span class="f">=</span> <span class="c">1</span><span class="f">,</span>                    \
<a name="173" /><span class="Maybe">     173:</span>     <span class="f">.</span><span class="b">max_newidle_lb_cost</span>    <span class="f">=</span> <span class="c">0</span><span class="f">,</span>                    \
<a name="174" /><span class="Maybe">     174:</span>     <span class="f">.</span><span class="b">next_decay_max_lb_cost</span>    <span class="f">=</span> <span class="b">jiffies</span><span class="f">,</span>                \
<a name="175" /><span class="Maybe">     175:</span> <span class="f">}</span>
<a name="176" /><span class="Maybe">     176:</span> <span class="f">#</span><span class="n">endif</span>
<a name="177" /><span class="Maybe">     177:</span> 
<a name="178" /><span class="False">     178:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_SCHED_BOOK</span>
<a name="179" /><span class="False">     179:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">SD_BOOK_INIT</span>
<a name="180" /><span class="False">     180:</span> <span class="f">#</span><span class="n">error</span> <span class="b">Please</span> <span class="b">define</span> <span class="b">an</span> <span class="b">appropriate</span> <span class="b">SD_BOOK_INIT</span> <span class="b">in</span> <span class="b">include</span><span class="f">/</span><span class="m">asm</span><span class="f">/</span><span class="b">topology</span><span class="f">.</span><span class="b">h</span><span class="f">!</span><span class="f">!</span><span class="f">!</span>
<a name="181" /><span class="False">     181:</span> <span class="f">#</span><span class="n">endif</span>
<a name="182" /><span class="Maybe">     182:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* CONFIG_SCHED_BOOK */</span>
<a name="183" /><span class="Maybe">     183:</span> 
<a name="184" /><span class="Maybe">     184:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1VTRV9QRVJDUFVfTlVNQV9OT0RFX0lEXzA_"><span class="b">CONFIG_USE_PERCPU_NUMA_NODE_ID</span></a>
<a name="185" /><span class="Maybe">     185:</span> <a href="cpu.c_macros_ref.html#_REVDTEFSRV9QRVJfQ1BVXzA_"><span class="b">DECLARE_PER_CPU</span></a><span class="f">(</span><span class="m">int</span><span class="f">,</span> <span class="b">numa_node</span><span class="f">)</span><span class="f">;</span>
<a name="186" /><span class="Maybe">     186:</span> 
<a name="187" /><span class="Maybe">     187:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">numa_node_id</span>
<a name="188" /><span class="Maybe">     188:</span> <span class="k">/* Returns the number of the current Node. */</span>
<a name="189" /><span class="Maybe">     189:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">numa_node_id</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="190" /><span class="Maybe">     190:</span> <span class="f">{</span>
<a name="191" /><span class="Maybe">     191:</span>     <span class="m">return</span> <a href="cpu.c_macros_ref.html#_X190aGlzX2NwdV9yZWFkXzA_"><span class="b">__this_cpu_read</span></a><span class="f">(</span><span class="b">numa_node</span><span class="f">)</span><span class="f">;</span>
<a name="192" /><span class="Maybe">     192:</span> <span class="f">}</span>
<a name="193" /><span class="Maybe">     193:</span> <span class="f">#</span><span class="n">endif</span>
<a name="194" /><span class="Maybe">     194:</span> 
<a name="195" /><span class="Maybe">     195:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">cpu_to_node</span>
<a name="196" /><span class="Maybe">     196:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">cpu_to_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>
<a name="197" /><span class="Maybe">     197:</span> <span class="f">{</span>
<a name="198" /><span class="Maybe">     198:</span>     <span class="m">return</span> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">numa_node</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="199" /><span class="Maybe">     199:</span> <span class="f">}</span>
<a name="200" /><span class="Maybe">     200:</span> <span class="f">#</span><span class="n">endif</span>
<a name="201" /><span class="Maybe">     201:</span> 
<a name="202" /><span class="Maybe">     202:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">set_numa_node</span>
<a name="203" /><span class="Maybe">     203:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">set_numa_node</span><span class="f">(</span><span class="m">int</span> <span class="b">node</span><span class="f">)</span>
<a name="204" /><span class="Maybe">     204:</span> <span class="f">{</span>
<a name="205" /><span class="Maybe">     205:</span>     <a href="cpu.c_macros_ref.html#_dGhpc19jcHVfd3JpdGVfMA__"><span class="b">this_cpu_write</span></a><span class="f">(</span><span class="b">numa_node</span><span class="f">,</span> <span class="b">node</span><span class="f">)</span><span class="f">;</span>
<a name="206" /><span class="Maybe">     206:</span> <span class="f">}</span>
<a name="207" /><span class="Maybe">     207:</span> <span class="f">#</span><span class="n">endif</span>
<a name="208" /><span class="Maybe">     208:</span> 
<a name="209" /><span class="Maybe">     209:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">set_cpu_numa_node</span>
<a name="210" /><span class="Maybe">     210:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">set_cpu_numa_node</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">,</span> <span class="m">int</span> <span class="b">node</span><span class="f">)</span>
<a name="211" /><span class="Maybe">     211:</span> <span class="f">{</span>
<a name="212" /><span class="Maybe">     212:</span>     <a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">numa_node</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span> <span class="f">=</span> <span class="b">node</span><span class="f">;</span>
<a name="213" /><span class="Maybe">     213:</span> <span class="f">}</span>
<a name="214" /><span class="Maybe">     214:</span> <span class="f">#</span><span class="n">endif</span>
<a name="215" /><span class="Maybe">     215:</span> 
<a name="216" /><span class="False">     216:</span> <span class="f">#</span><span class="n">else</span>    <span class="k">/* !CONFIG_USE_PERCPU_NUMA_NODE_ID */</span>
<a name="217" /><span class="False">     217:</span> 
<a name="218" /><span class="False">     218:</span> <span class="k">/* Returns the number of the current Node. */</span>
<a name="219" /><span class="False">     219:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">numa_node_id</span>
<a name="220" /><span class="False">     220:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">numa_node_id</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="221" /><span class="False">     221:</span> <span class="f">{</span>
<a name="222" /><span class="False">     222:</span>     <span class="m">return</span> <span class="b">cpu_to_node</span><span class="f">(</span><a href="cpu.c_macros_noref.html#_cmF3X3NtcF9wcm9jZXNzb3JfaWRfMA__"><span class="b">raw_smp_processor_id</span></a><span class="f">(</span><span class="f">)</span><span class="f">)</span><span class="f">;</span>
<a name="223" /><span class="False">     223:</span> <span class="f">}</span>
<a name="224" /><span class="False">     224:</span> <span class="f">#</span><span class="n">endif</span>
<a name="225" /><span class="False">     225:</span> 
<a name="226" /><span class="Maybe">     226:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* [!]CONFIG_USE_PERCPU_NUMA_NODE_ID */</span>
<a name="227" /><span class="Maybe">     227:</span> 
<a name="228" /><span class="False">     228:</span> <span class="f">#</span><span class="n">ifdef</span> <span class="b">CONFIG_HAVE_MEMORYLESS_NODES</span>
<a name="229" /><span class="False">     229:</span> 
<a name="230" /><span class="False">     230:</span> <span class="k">/*</span>
<a name="231" /><span class="False">     231:</span> <span class="k"> * N.B., Do NOT reference the &apos;_numa_mem_&apos; per cpu variable directly.</span>
<a name="232" /><span class="False">     232:</span> <span class="k"> * It will not be defined when CONFIG_HAVE_MEMORYLESS_NODES is not defined.</span>
<a name="233" /><span class="False">     233:</span> <span class="k"> * Use the accessor functions set_numa_mem(), numa_mem_id() and cpu_to_mem().</span>
<a name="234" /><span class="False">     234:</span> <span class="k"> */</span>
<a name="235" /><span class="False">     235:</span> <a href="cpu.c_macros_ref.html#_REVDTEFSRV9QRVJfQ1BVXzA_"><span class="b">DECLARE_PER_CPU</span></a><span class="f">(</span><span class="m">int</span><span class="f">,</span> <span class="b">_numa_mem_</span><span class="f">)</span><span class="f">;</span>
<a name="236" /><span class="False">     236:</span> 
<a name="237" /><span class="False">     237:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_c2V0X251bWFfbWVtXzA_"><span class="b">set_numa_mem</span></a>
<a name="238" /><span class="False">     238:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_c2V0X251bWFfbWVtXzA_"><span class="b">set_numa_mem</span></a><span class="f">(</span><span class="m">int</span> <span class="b">node</span><span class="f">)</span>
<a name="239" /><span class="False">     239:</span> <span class="f">{</span>
<a name="240" /><span class="False">     240:</span>     <a href="cpu.c_macros_ref.html#_dGhpc19jcHVfd3JpdGVfMA__"><span class="b">this_cpu_write</span></a><span class="f">(</span><span class="b">_numa_mem_</span><span class="f">,</span> <span class="b">node</span><span class="f">)</span><span class="f">;</span>
<a name="241" /><span class="False">     241:</span> <span class="f">}</span>
<a name="242" /><span class="False">     242:</span> <span class="f">#</span><span class="n">endif</span>
<a name="243" /><span class="False">     243:</span> 
<a name="244" /><span class="False">     244:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">numa_mem_id</span>
<a name="245" /><span class="False">     245:</span> <span class="k">/* Returns the number of the nearest Node with memory */</span>
<a name="246" /><span class="False">     246:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">numa_mem_id</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="247" /><span class="False">     247:</span> <span class="f">{</span>
<a name="248" /><span class="False">     248:</span>     <span class="m">return</span> <a href="cpu.c_macros_ref.html#_X190aGlzX2NwdV9yZWFkXzA_"><span class="b">__this_cpu_read</span></a><span class="f">(</span><span class="b">_numa_mem_</span><span class="f">)</span><span class="f">;</span>
<a name="249" /><span class="False">     249:</span> <span class="f">}</span>
<a name="250" /><span class="False">     250:</span> <span class="f">#</span><span class="n">endif</span>
<a name="251" /><span class="False">     251:</span> 
<a name="252" /><span class="False">     252:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">cpu_to_mem</span>
<a name="253" /><span class="False">     253:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">cpu_to_mem</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>
<a name="254" /><span class="False">     254:</span> <span class="f">{</span>
<a name="255" /><span class="False">     255:</span>     <span class="m">return</span> <a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">_numa_mem_</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="256" /><span class="False">     256:</span> <span class="f">}</span>
<a name="257" /><span class="False">     257:</span> <span class="f">#</span><span class="n">endif</span>
<a name="258" /><span class="False">     258:</span> 
<a name="259" /><span class="False">     259:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_c2V0X2NwdV9udW1hX21lbV8w"><span class="b">set_cpu_numa_mem</span></a>
<a name="260" /><span class="False">     260:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <a href="cpu.c_macros_ref.html#_c2V0X2NwdV9udW1hX21lbV8w"><span class="b">set_cpu_numa_mem</span></a><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">,</span> <span class="m">int</span> <span class="b">node</span><span class="f">)</span>
<a name="261" /><span class="False">     261:</span> <span class="f">{</span>
<a name="262" /><span class="False">     262:</span>     <a href="cpu.c_macros_ref.html#_cGVyX2NwdV8w"><span class="b">per_cpu</span></a><span class="f">(</span><span class="b">_numa_mem_</span><span class="f">,</span> <span class="b">cpu</span><span class="f">)</span> <span class="f">=</span> <span class="b">node</span><span class="f">;</span>
<a name="263" /><span class="False">     263:</span> <span class="f">}</span>
<a name="264" /><span class="False">     264:</span> <span class="f">#</span><span class="n">endif</span>
<a name="265" /><span class="False">     265:</span> 
<a name="266" /><span class="Maybe">     266:</span> <span class="f">#</span><span class="n">else</span>    <span class="k">/* !CONFIG_HAVE_MEMORYLESS_NODES */</span>
<a name="267" /><span class="Maybe">     267:</span> 
<a name="268" /><span class="Maybe">     268:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">numa_mem_id</span>
<a name="269" /><span class="Maybe">     269:</span> <span class="k">/* Returns the number of the nearest Node with memory */</span>
<a name="270" /><span class="Maybe">     270:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">numa_mem_id</span><span class="f">(</span><span class="m">void</span><span class="f">)</span>
<a name="271" /><span class="Maybe">     271:</span> <span class="f">{</span>
<a name="272" /><span class="Maybe">     272:</span>     <span class="m">return</span> <span class="b">numa_node_id</span><span class="f">(</span><span class="f">)</span><span class="f">;</span>
<a name="273" /><span class="Maybe">     273:</span> <span class="f">}</span>
<a name="274" /><span class="Maybe">     274:</span> <span class="f">#</span><span class="n">endif</span>
<a name="275" /><span class="Maybe">     275:</span> 
<a name="276" /><span class="Maybe">     276:</span> <span class="f">#</span><span class="n">ifndef</span> <span class="b">cpu_to_mem</span>
<a name="277" /><span class="Maybe">     277:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">cpu_to_mem</span><span class="f">(</span><span class="m">int</span> <span class="b">cpu</span><span class="f">)</span>
<a name="278" /><span class="Maybe">     278:</span> <span class="f">{</span>
<a name="279" /><span class="Maybe">     279:</span>     <span class="m">return</span> <span class="b">cpu_to_node</span><span class="f">(</span><span class="b">cpu</span><span class="f">)</span><span class="f">;</span>
<a name="280" /><span class="Maybe">     280:</span> <span class="f">}</span>
<a name="281" /><span class="Maybe">     281:</span> <span class="f">#</span><span class="n">endif</span>
<a name="282" /><span class="Maybe">     282:</span> 
<a name="283" /><span class="Maybe">     283:</span> <span class="f">#</span><span class="n">endif</span>    <span class="k">/* [!]CONFIG_HAVE_MEMORYLESS_NODES */</span>
<a name="284" /><span class="Maybe">     284:</span> 
<a name="285" /><span class="False">     285:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfcGh5c2ljYWxfcGFja2FnZV9pZF8w"><span class="b">topology_physical_package_id</span></a>
<a name="286" /><span class="False">     286:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfcGh5c2ljYWxfcGFja2FnZV9pZF8w"><span class="b">topology_physical_package_id</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>    <span class="f">(</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">(</span><span class="b">cpu</span><span class="f">)</span><span class="f">,</span> <span class="f">-</span><span class="c">1</span><span class="f">)</span>
<a name="287" /><span class="Maybe">     287:</span> <span class="f">#</span><span class="n">endif</span>
<a name="288" /><span class="False">     288:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfY29yZV9pZF8w"><span class="b">topology_core_id</span></a>
<a name="289" /><span class="False">     289:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfY29yZV9pZF8w"><span class="b">topology_core_id</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>            <span class="f">(</span><span class="f">(</span><span class="m">void</span><span class="f">)</span><span class="f">(</span><span class="b">cpu</span><span class="f">)</span><span class="f">,</span> <span class="c">0</span><span class="f">)</span>
<a name="290" /><span class="Maybe">     290:</span> <span class="f">#</span><span class="n">endif</span>
<a name="291" /><span class="False">     291:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfdGhyZWFkX2NwdW1hc2tfMA__"><span class="b">topology_thread_cpumask</span></a>
<a name="292" /><span class="False">     292:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfdGhyZWFkX2NwdW1hc2tfMA__"><span class="b">topology_thread_cpumask</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_Y3B1bWFza19vZl8w"><span class="b">cpumask_of</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>
<a name="293" /><span class="Maybe">     293:</span> <span class="f">#</span><span class="n">endif</span>
<a name="294" /><span class="False">     294:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfY29yZV9jcHVtYXNrXzA_"><span class="b">topology_core_cpumask</span></a>
<a name="295" /><span class="False">     295:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_ref.html#_dG9wb2xvZ3lfY29yZV9jcHVtYXNrXzA_"><span class="b">topology_core_cpumask</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>        <a href="cpu.c_macros_ref.html#_Y3B1bWFza19vZl8w"><span class="b">cpumask_of</span></a><span class="f">(</span><span class="b">cpu</span><span class="f">)</span>
<a name="296" /><span class="Maybe">     296:</span> <span class="f">#</span><span class="n">endif</span>
<a name="297" /><span class="Maybe">     297:</span> 
<a name="298" /><span class="True">     298:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_TOPOLOGY_H */</span>
<a name="299" /><span class="True">     299:</span> </pre>
  </body>
</html>
